/**
 * @file 登录态运行时状态（仅内存，不持久化）
 * @description 基于 createRuntimeState，跨窗口同步登录状态（模拟）
 * 注意：当前仅用于 UI 演示与登录状态切换，不接入真实后端
 */

import { createRuntimeState } from 'global-state'

export type AuthProvider = 'password' | 'qrcode' | 'linkedin' | 'google' | 'wechat'

export interface AuthUser {
  id: string
  name: string
  email?: string
  avatar?: string
}

export interface AuthState {
  isLoggedIn: boolean
  user: AuthUser | null
  provider?: AuthProvider
}

/**
 * 全局登录态（运行时）
 * - isLoggedIn: 是否已登录
 * - user: 当前用户信息（mock）
 * - provider: 登录方式
 */
export const authState = createRuntimeState<AuthState>('auth', {
  isLoggedIn: false,
  user: null,
  provider: undefined
})

/**
 * 小工具方法：退出登录（清空登录态）
 */
export function logout() {
  authState.set({ isLoggedIn: false, user: null, provider: undefined })
}
